#!/bin/bash
#
# Este script permite modificar un atributo de un usuario
# via LDAP
#
# Argumentos...
#   1er argumento: login a modificar
#   2do argumento: Campo a modificar
#   3er argumento: Valor
#

 # Comprobar argumentos...
 if [ "" = "$3" ]
 then
    echo "ERROR: Debes pasar <login> <campo> <valor>"
    exit 2
 fi
 
 # Obtener la ruta absoluta del script
 LSOF=$(lsof 2>/dev/null -p $$ | grep -E "/"$(basename $0)"$")
 MY_PATH=$(echo $LSOF | sed -r s/'^([^\/]+)\/'/'\/'/1 2>/dev/null)
 MY_ROOT=$(dirname $MY_PATH)


 # Cargar la configuracion del servidor Samba
 . $MY_ROOT/Config.app.conf

 # Para los temporales...
 tmpFile=/tmp/ldapMod_$$_$RANDOM

 # Lanzar la búsqueda...
 dn=$( ldapsearch -x -h $LDAP_Server -D "$LDAP_Login" -w $LDAP_Passw -b "$LDAP_Base" "(&(objectClass=sambaSamAccount)(cn=$1))" -LLL dn | perl -ne 'if($_=~m/^\s+(\S.+)\s+$/) {print "$1";}else{ $_=~m/^(.+)\s+$/; print "\n$1";}' | grep 'dn:' | cut -c5- )

 if [ "" != "$dn" ]
 then
    cat >$tmpFile <<EOF 
dn: $dn
changetype: modify
replace: $2
$2: $3
-

EOF
    #  Lanzar la modificacion...
    ldapmodify  -x -h $LDAP_Server -D "$LDAP_Login" -w $LDAP_Passw -f $tmpFile >/dev/null 2>/dev/null
    rm -f $tmpFile
 fi

